﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Jay.Sc2.Bof.Lib.Tools;

namespace Jay.Sc2.Bof.Lib.Entity
{
	public interface IEntity
	{
		int ID { get; }
		string Type { get; }
		string Name { get; }
		int Time { get; }
		int Minerals { get; }
		int Gas { get; }
		int Supply { get; }

		ISet<IEntity> Producers { get; }
		ISet<IEntity> Requirements { get; }
		ISet<IDictionary<IEntity, int>> Inputs { get; }

		Cost BuildCost(bool firstBuild, EntityState state, List<IEntity> requirementsAlreadyNeeded, List<IEntity> added);
	}
}
